<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="utf-8" />
		<base href="../../../" />
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body>
		[page:EventDispatcher] &rarr;

		<h1>控制器([name])</h1>

		<p class="desc">
			控制器的抽象基类。
		</p>

		<h2>构造函数</h2>

		<h3>[name]( [param:Object3D object], [param:HTMLDOMElement domElement] )</h3>
		
		<p>
		[page:Object3D object] - 控件应该管理的对象（通常是相机）。
		</p>
		<p>
		[page:HTMLDOMElement domElement]: 用于添加事件侦听器的 HTML 元素。(可选)
		</p>
		<p>
			创建一个 [name] 实例。
		</p>
		
		<h2>属性</h2>

		<h3>[property:HTMLDOMElement domElement]</h3>
		<p>
			用于添加事件侦听器的 HTML 元素。 如果没有在构造函数中提供，[page:.connect]() 必须在 `domElement` 设置后才能调用。
		</p>

		<h3>[property:Boolean enabled]</h3>
		<p>
			如果设置为 `false`，控制器将不再响应用户设备输入。 默认值为 `true`。
		</p>

		<h3>[property:Object keys]</h3>
		<p>
			该对象用于定义控制器的键盘输入。
			默认值为 `{}`。
		</p>

		<h3>[property:Object mouseButtons]</h3>
		<p>
			此对象定义分配给可用鼠标按键的操作类型。
			支持哪些鼠标按键和操作取决于控制器的具体实现。
			默认值为 `{ LEFT: null, MIDDLE: null, RIGHT: null }`。
		</p>
		<p>
			按键可能为: `LEFT`, `MIDDLE`, `RIGHT`。
		</p>
		<p>
			可能的操作是定义在 [page:Core Constants] 中。
		</p>

		<h3>[property:Object3D object]</h3>
		<p>
			由控制器管理的 Object3D 对象。
		</p>

		<h3>[property:Integer state]</h3>
		<p>
			控制器的内部状态。默认值为 `-1` (`NONE`)。
		</p>

		<h3>[property:Object touches]</h3>
		<p>
			此对象定义将哪种类型的操作分配给哪种触摸交互。
			支持哪种触摸交互和操作取决于控制器的具体实现。
			默认值为 `{ ONE: null, TWO: null }`。
		</p>
		<p>
			可能触摸点操作有: `ONE`, `TWO`.
		</p>
		<p>
			可能的操作是定义在 [page:Core Constants] 中。
		</p>

		<h2>方法</h2>

		<p>共有方法请参见其基类[page:EventDispatcher]。</p>

		<h3>[method:undefined connect] ()</h3>
		<p>
			将控制器连接到 DOM。此方法具有所谓的“副作用”，因为它将模块的事件侦听器添加到 DOM。
		</p>

		<h3>[method:undefined disconnect] ()</h3>
		<p>
			断开控制器与 DOM 的连接。
		</p>

		<h3>[method:undefined dispose] ()</h3>
		<p>
			如果您不再需要使用这些控制器，请调用此方法。它将释放所有内部资源并删除所有事件侦听器。
		</p>

		<h3>[method:undefined update] ( [param:Number delta] )</h3>
		<p>
			如果控制器必须在每个模拟步骤中更新其内部状态，则应实现此方法。
		</p>

		<h2>源代码</h2>

		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
		</p>
	</body>
</html>
